#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
//int main()
//{
//	int n = 0;
//	int m = 0;
//	scanf("%d %d", &n, &m);
//	int i = 0;
//	int j = 0;
//	int start = (n < m) ? n : m;
//	int end = (n > m) ? n : m;
//	int found = 0;
//	for (i = start; i <= end; i++)
//	{
//		int sum = 0;
//		for (j = 1; j <= i / 2; j++)
//		{
//			if (i % j == 0)
//			{
//				sum += j;
//			}	
//		}
//		if (sum == i)
//		{
//			printf("%d = 1",i);
//			for (j = 2; j <= i / 2; j++)
//			{
//				if (i % j == 0)
//				{
//					printf(" + %d", j); 
//				}
//			}
//			printf("\n");
//			found = 1;
//		}
//    }
//    if(!found)
//       {
//	        printf("None\n");
//	   }
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int m = 0;
//	scanf("%d", &m);
//	int i = 0;
//	int found = 0;
////	if (m < 2004 || m > 2100)
////	{
////		printf("Invalid year!");
////		return 1;
////	}
////	for (i = 2004;i <= m ; i++)
////	{
////		if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
////		{
////			printf("%d\n", i);
////			found = 1;
////		}
////	}
////	if (!found)
////	{
////		printf("None");
////	}
////	return 0;
////}
//#include<stdio.h>
//int is_leap_year(int i)
//{
//	if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
//	{
//		return 1;
//	}
//	return 0;
//}
//
//int main()
//{
//	int end_year = 0;
//	scanf("%d", &end_year);
//	int i = 0;
//	int found = 0;
//	if (end_year < 2001 || end_year > 2100)
//	{
//		printf("Invalid year!");
//		return 1;
//	}
//		for (i = 2004; i <= end_year; i++)
//		{
//			if (is_leap_year(i))
//			{
//				printf("%d\n", i);
//				found = 1;
//			}
//			
//		}
//		
//	if (!found)
//	{
//		printf("None\n");
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	int arr[] = { 0 };
//	scanf("%d", &n);
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d",&arr[i]);
//	}
//	int A = 0;
//	int B = 0;
//	int C = 0;
//	int D = 0;
//	int E = 0;
//	for (i = 0; i < n; i++)
//	{
//		if (arr[i] >= 90)
//		{
//			A++;
//		}
//		else if (arr[i] >= 80)
//		{
//			B++;
//		}
//		else if (arr[i] >= 70)
//		{
//			C++;
//		}
//		else if (arr[i] >= 60)
//		{
//			D++;
//		}
//		else
//		{
//			E++;
//		}
//	}
//	printf("%d %d %d %d %d", A, B, C, B, E);
//	return 0;
//}
/*for (i = 153;; i++)
{
	int orginal_i = i;
	while (a == 0)
	{
		i /= 10;
		a = i % 10;
		b = pow(a, 3);
		sum += b;
	}
	if (sum == orginal_i)
	{
		while (sum == 0)
		{
			sum /= 10;
			digits++;
			if (n == digits)
			{
				printf("%d", i);
			}
		}
	}
}*/
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int digits = 0;
//	int start = (int)pow(10 , n - 1);
//	int end =(int) pow(10, n);
//	for (i = start; i < end; i++)
//	{
//		int temp = i;
//		int digit_count = 0;
//		int sum = 0;
//		while (temp > 0)
//		{
//			digits = temp % 10;
//			sum += (int)pow(digits, n);
//			temp /= 10;
//			digit_count++;
//		}
//		if (sum == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}
//#include<stdio.h>
//int Power(int base,int n)
//{
//	int i = 0;
//	int result = 1;
//
//	for (i = 0; i < n;i++)
//	{
//		result *= base;
//	}
//	return result;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int start = 1;
//	for (int i = 0; i < n - 1; i++)
//	{
//		start *= 10;
//	}
//	int end = start * 10;
//	int i = 0;
//	int base = 0;
//	for (i = start; i < end; i++)
//	{
//		int temp = i;
//		int sum = 0;
//		int digit_count = 0;
//		int t = temp;
//		while (t > 0)
//		{
//			t /= 10;
//			digit_count++;
//		}
//		temp = i;
//		while (temp > 0)
//		{
//			int digit = temp % 10;
//			sum += Power(digit, digit_count);
//			temp /= 10;
//		}
//		if (sum == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}
#include<stdio.h>
int main()
{
	int r = 0;
	int h = 0;
	int c = 0;
	int n = 0;
	int i = 0;
	int count = 0;
	scanf("%d", &n);
		for (r = 19;; r--)
		{
			for (h = (99 - 5 * r) / 3;; h--)
			{
				for (c = 96 - 5 * r - 3 * h;; c--)
				{
					c *= 3;
					printf("%d %d %d", r, h, c);
					count++;
					if (count == n)
					{
						break;
					}
				}
			}
		}
	return 0;
}